1 前期准备
系统:Ubuntu系统
1.1 TCP
TCP:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 使用socke实现TCP通信,需要准备下列参数:
服务端:源端口+ ip地址客户端:服务端源端口 + 服务端ip地址
1.2 获取ip地址
//windos系统
$ ipconfig
......
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::5eff:f43f:cb33:c275%2
IPv4 地址 . . . . . . . . . . . . : 192.168.0.101
子网掩码 . . . . . . . . . . . . : 255.255.255.0
......
//Ubuntu系统
$ ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.0.109 netmask 255.255.255.0 broadcast 192.168.0.255
2 socket编写服务端
2.1 创建套接字
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(-1 == serv_sock)
{
std::cout //服务端套接字,同时能够允许多少个客户端连接
std::cout'\0'};
int read_len;
read_len = read(client_sock,recvbuf,strlen(recvbuf)+1);
2.6 关闭网络连接
close(client_sock);
close(serv_sock);
tcp_server.cpp文件
#include
#include //依赖头文件
#include //依赖头文件
#include //inet_addr()的头文件
#include //socklen_t的头文件
#include
#include
int main()
{
//1. 创建套接字 ,TCP使用的协议SOCK_STREAM
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(-1 == serv_sock)
{
std::cout //服务端套接字,同时能够允许多少个客户端连接
std::cout
std::cout'\0'};
read(serv_sock,revbuffer,sizeof(revbuffer));
3.5 关闭网络连接
close(serv_sock);
tcp_client.cpp文件
#include
#include //依赖头文件
#include //依赖头文件
#include //inet_addr()的头文件
#include //socklen_t的头文件
#include
#include
int main()
{
//1. 创建套接字
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(-1 == serv_sock)
{
std::cout |